Methods and apparatus for filtering noise in a three-dimensional position measurement system

ABSTRACT

A method of filtering noise in a three-dimensional position measurement system comprising receiving distance data representative of the respective distances between at least four spatially dispersed known points and an unknown point, performing triangulation calculations to determine at least two solutions to the three dimensional position of the unknown point relative to the known points, calculating a symmetrical bounding surface such as a sphere or cube which just encloses the said solutions, comparing the maximum dimension of the bounding surface with a first predetermined error threshold, and if the maximum dimension is less than the first error threshold, determining the centre position of the bounding surface and outputting the centre position as a noise-filtered position for the unknown point.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims the benefit of Patent Cooperation Treaty Application No. PCT/GB2009/000253 filed Jan. 30, 2009, which is hereby incorporated herein by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to methods and apparatuses for filtering or cancelling noise present in data received from three-dimensional position measurement apparatus.

DESCRIPTION OF THE RELATED ART

The present invention relates to methods and apparatuses for filtering or cancelling noise present in data received from three-dimensional position measurement apparatus, such as that disclosed in co-pending PCT patent application publication WO 2007/110626, the disclosure of which is hereby incorporated by reference.

Our earlier application discloses apparatus in which one or more movable components such as hand-held game controllers are operable to transmit an ultrasonic pulse starting at a known time. The pulse is received by three or more ultrasonic transducers which are arranged in a known spatial relationship and are spaced apart. The pulse of ultrasonic energy transmitted by the mobile component therefore travels different distances to the spaced apart transducers. The distance may be determined by measuring the time of flight of the ultrasonic pulse from the mobile component to the fixed component on the assumption that the speed of propagation of the pulse is substantially constant for the distances concerned.

Performing triangulation using the three or more distance measurements and the known spaced apart relationship of the fixed transducers, it is possible to derive at least one solution for the three-dimensional position of the mobile hand-held component.

Under ideal conditions the derived solution or solutions will all be identical. However in practice, room reflections, extraneous noise and moving objects such as other people obscuring sensors, causes variation in the solutions.

To help overcome this problem, the apparatus proposed in our earlier application uses four fixed sensors which allows four possible solutions since effectively the fourth sensor may be considered redundant since in theory at least three sensors should be enough to determine position in three dimensions.

The provision of four solutions allows ready detection of errors since unless the solutions are identical, it may be assumed that at least one of the solutions is inaccurate. However, the derivation of a correct or corrected solution even with the provision of four or more possible solutions through redundant transducers, is still a complex problem.

BRIEF SUMMARY OF EMBODIMENTS OF THE INVENTION

The present invention relates to methods and apparatuses for filtering or cancelling noise present in data received from three-dimensional position measurement apparatus. More specifically, the present invention is concerned with carrying out processing on the raw output of the transducer triangulation calculations in order to provide a noise filtered result of greater accuracy.

Accordingly, in one embodiment, the invention provides a method of filtering noise in a three-dimensional position measurement system comprising receiving distance data representative of the respective distances between at least four spatially dispersed known points and an unknown point, performing triangulation calculations to determine at least two solutions to the three dimensional position of the unknown point relative to the known points, calculating a symmetrical bounding surface such as a sphere or cube which just encloses the said solutions, comparing the maximum dimension of the bounding surface with a first predetermined error threshold, and if the maximum dimension is less than the first error threshold, determining the centre position of the bounding surface and outputting the centre position as a noise-filtered position for the unknown point.

In another embodiment, the invention provides position detection apparatus arranged to receive distance data representative of the respective distances between at least four spatially dispersed known points and an unknown point, to carry out the processing steps of any preceding claim and to output data representative of a noise-filtered position for the unknown point.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention, in accordance with one or more various embodiments, is described by way of example with reference to the following figures:

FIG. 1 is a block diagram of an example of the type of apparatus which may be used with the present invention; and

FIGS. 2A and 2B is a schematic flow chart showing process steps concerned with the present application.

DETAILED DESCRIPTION OF THE EMBODIMENTS OF THE INVENTION

The invention will now be described by way of example with reference to the drawings.

With reference to FIG. 1, a mobile device 2 has an ultrasonic transducer 4 and an RF transducer 6.

A fixed base unit 8 has four ultrasonic transducers 10 and an RF transducer 12.

Control communications are transmitted and received using the RF transducers 6 and 12 and in operation, the base unit 8 commands for the mobile unit 2 to transmit a burst of ultrasonic energy via the transducer 4.

The base unit 8 then measures the time between issuing the command and receiving ultrasonic energy at each of the transducers 10. Although in the figure, the transducers 10 are shown adjacent one another, in practice these transducers are spatially dispersed by distances of the order of five to fifteen centimeters which then allows differences in time of flight between the transducer 4 and the plurality of transducers 10, to be measured. By assuming a speed of propagation for the ultrasonic energy or by performing a calibration of the type discussed in our early application, the time of flight measurement may be converted into a distance measurement for the distance between the unknown position of the transducer 4 and the known positions of the transducers 10.

Thus, the apparatus in operation produces a set of distances which may be processed using triangulation calculations, to derive a solution for the three-dimensional position of the transducer 4 relative to the transducers 10 and also a further three “redundant” solutions which may be used for error detection and correction as discussed in detail below. It will be appreciated that the addition of further transducers 10 will provide further redundant calculations which may also be used in the techniques described below to provide error detection and correction capability. Equally, some of the techniques described below could be used with only three fixed transducers 10.

With reference to FIG. 2, in a first step of processing a bounding surface is calculated (step 18) which encompasses the four possible position solutions. In the preferred embodiment, the bounding surface is a sphere. The surface is calculated to enclose the solutions with a minimum radius.

The radius of the bounding sphere is compared with an error threshold. If the radius is smaller than the threshold then the centre of the sphere is determined and this centre position is returned as a valid current position for the transducer 4 (step 24).

It will be appreciated that these conditions will be met when all solutions provide a result close to one another. By taking the centre of the sphere as the final position, a spatial averaging is carried out.

In step 20, the data is further processed if the points in step 18 do not fit within an appropriately sized bounding space. This happens when at least one of the solutions is significantly different to the others and indicates an error in at least one of the solutions. First, an estimate is made of the expected position based on historical velocity and direction interval and the time since the last good reading. If any of the solutions are within a pre-determined error threshold (which may be the same threshold as that used in step 18) then that solution is considered a viable candidate for output. If more than one solution is within the error threshold then the position nearest to the estimated position is output.

If still no solutions have been output then the distances measured from the apparatus are systematically adjusted and the same steps carried out again. The adjustment is made on the assumption that a complete cycle wavelength of the ultrasonic energy may have been missed. Thus the distance measurements are processed by sequentially adding distances equivalent to multiples of the wavelength of the ultrasonic energy. For example, solutions may be sought adding one, two and/or three wavelengths to each of the distance measurements in turn. The possibility of adding wavelengths to all four at the same time is excluded since this would not yield a valid result.

In this way, the system is able to hypothesize which of the measurements may be in error through missing the beginning of receipt of ultrasonic energy by the transducers 10. If having carried out the systematic processing, the solutions are closer together (step 18) or are close to the estimated position (step 22) then it is reasonable to assume that a valid position measurement may be output (step 24 or 26) and processing may then cease.

However, if none of the solutions have passed the test at steps 18 and 22 even with the wavelength shifting of step 28, a weighted average is instead prepared. The average is prepared using a weighting (preferably exponential) based on the distance of each solution from the estimated position calculated in step 20. Positions which are furthest from the estimated position based on previous good data are therefore given less weighting. For solutions close to the estimated position the output is approximately an average. This has the effect of preventing a single large scale erroneous solution from having a significant effect on the calculated position. However, this weighted average is not used for future position estimations in future iterations of step 20.

The preferred weighting is simply the reciprocal of the distance from the estimated position.

Preferably all solutions are smoothed relative to the historical solution. This may for example be carried out by taking a proportionally weighted average of the present output position and the previous cumulative position. This may be achieved, for example, by calculating the distance between the present value and the previous value and, for example, adding on a value weighted by (one minus two times the distance).

Thus for every updated position, that value is used to update an ever-present smoothed value of position. This ever-present value is updated to be a weighted average of itself, and the new position value. The weighting is from 0 to 1, and is chosen to guarantee 0% of the existing value (and thus 100% of the new) when a ‘large’ movement has occurred, current implementation takes ‘large’ as 50 cm. And 100% of the existing value (0% of the new) when the new position value is the same as the ever-present value. The large the proportion of the existing value, the more highly smoothed the value is, which we can tolerate at small displacements, but not at large ones because the lag becomes too evident. We linearly interpolate this weighting for every difference between. Hence weighting=1−2*dist gives a 0 or 0% weighting of the existing, and 1 or 100% weighting of the new, when the dist=0.5 m or 50 cm.

This weighting allows jitter to be smoothed when movement from the last position is very small but also allows the process to react quickly if genuine large movements have been made. 

1. A method of filtering noise in a three-dimensional position measurement system comprising: (a) receiving distance data representative of the respective distances between at least four spatially dispersed known points and an unknown point; (b) performing triangulation calculations to determine at least two solutions to the three dimensional position of the unknown point relative to the known points; (c) calculating a symmetrical bounding surface such as a sphere or cube which just encloses the said solutions; (d) comparing the maximum dimension of the bounding surface with a first predetermined error threshold; and (e) if the maximum dimension is less than the first error threshold, determining the centre position of the bounding surface and outputting the centre position as a noise-filtered position for the unknown point.
 2. A method according to claim 1, wherein an estimated position for the unknown point is calculated based on historical noise-filtered position data, wherein the said solutions are compared with the estimated position and wherein the said solution which is closest to the estimated position and which is less than a second predetermined error distance from the estimated position, is output as the noise-filtered position for the unknown point.
 3. A method according to claim 2, wherein the first and second error thresholds have the same value.
 4. A method according to claim 1, wherein the distance data is derived from measurements of time related to propagation of sound between the known points and the unknown point and wherein adjusted distance measurements are calculated by adding different combinations of a distance equal to one or more wavelength of the said sound and wherein the said solutions are recalculated using the adjusted distance data to derive a plurality of adjusted position measurements, and wherein the method further comprises carrying out the steps (a)-(e) on the adjusted position measurements.
 5. A method according to claim 2, wherein the distance data is derived from measurements of time related to propagation of sound between the known points and the unknown point and wherein adjusted distance measurements are calculated by adding different combinations of a distance equal to one or more wavelength of the said sound and wherein the said solutions are recalculated using the adjusted distance data to derive a plurality of adjusted position measurements, and wherein the method further comprises carrying out the steps (a)-(e) on the adjusted position measurements.
 6. A method according to claim 3, wherein the distance data is derived from measurements of time related to propagation of sound between the known points and the unknown point and wherein adjusted distance measurements are calculated by adding different combinations of a distance equal to one or more wavelength of the said sound and wherein the said solutions are recalculated using the adjusted distance data to derive a plurality of adjusted position measurements, and wherein the method further comprises carrying out the steps (a)-(e) on the adjusted position measurements.
 7. A method according to claim 2, wherein an averaged noise-filtered position is calculated using a weighted average of the said solutions wherein the solutions are exponentially weighted according to their vector distance from the estimated position with solutions further from the estimated position being weighted less than nearer solutions.
 8. A method according to claim 3, wherein an averaged noise-filtered position is calculated using a weighted average of the said solutions wherein the solutions are exponentially weighted according to their vector distance from the estimated position with solutions further from the estimated position being weighted less than nearer solutions.
 9. A method according to claim 4, wherein an averaged noise-filtered position is calculated using a weighted average of the said solutions wherein the solutions are exponentially weighted according to their vector distance from the estimated position with solutions further from the estimated position being weighted less than nearer solutions.
 10. A method according to claim 5, wherein an averaged noise-filtered position is calculated using a weighted average of the said solutions wherein the solutions are exponentially weighted according to their vector distance from the estimated position with solutions further from the estimated position being weighted less than nearer solutions.
 11. A method according to claim 6, wherein an averaged noise-filtered position is calculated using a weighted average of the said solutions wherein the solutions are exponentially weighted according to their vector distance from the estimated position with solutions further from the estimated position being weighted less than nearer solutions.
 12. A method according to claim 5, wherein the averaged noise-filtered position is ignored when calculating further estimated positions.
 13. A method according to claim 1, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 14. A method according to claim 2, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 15. A method according to claim 3, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 16. A method according to claim 4, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 17. A method according to claim 5, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 18. A method according to claim 6, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 19. A method according to claim 7, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 20. A method according to claim 8, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 21. A method according to claim 9, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 22. A method according to claim 10, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 23. A method according to claim 11, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 24. A method according to claim 12, wherein the averaged noise-filtered position or the said noise-filtered position is averaged with a cumulative historical position value by weighted addition to the cumulative historical position value wherein the weighting is proportional to the distance between the cumulative historical position value and the averaged noise-filtered position or the said noise-filtered position.
 25. A position detection apparatus arranged to receive distance data representative of the respective distances between at least four spatially dispersed known points and an unknown point, to carry out the processing steps of any preceding claim and to output data representative of a noise-filtered position for the unknown point. 